package com.imc.api.templmess.utils;

import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/*
 * 类描述：判断用户有没有关注微信公众号
 * 开发者：YT
 * 创建日期：2018/10/23 20:11
 */
public class WX_UserUtil {
    private static Logger log = LoggerFactory.getLogger(WX_UserUtil.class);

    /**
     * 根据微信openId 获取用户是否订阅
     *
     * @param openId 微信openId
     * @return 是否订阅该公众号标识
     */
    public static Integer subscribeState(String openId, String appid, String appSecret) {
        String tmpurl = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=" + WXTokenUtil.getWXToken(appid, appSecret).getAccessToken() + "&openid=" + openId;
        JSONObject result = WXHttpsUtil.httpsRequest(tmpurl, "GET", null);
        JSONObject resultJson = new JSONObject(result);
        log.error("获取用户是否订阅 errcode:{} errmsg:{}", resultJson.getInteger("errcode"), resultJson.getString("errmsg"));
        String errmsg = (String) resultJson.get("errmsg");
        if (errmsg == null) {
            //用户是否订阅该公众号标识（0代表此用户没有关注该公众号 1表示关注了该公众号）。
            Integer subscribe = (Integer) resultJson.get("subscribe");
            return subscribe;
        }
        return -1;
    }

}
